package edu.gatech.ic.android.keyDetector;

public class BrailleCharacter {

	private static final Character[] characters = new Character[] {
		
		null,   	// 000 000 -
        ',',  		// 000 001 (Capital)
        '\'',  		// 000 010 -
        ';',  		// 000 011
        '`',  		// 000 100
        '.',  		// 000 101
        '~',  		// 000 110 -
        '_',  		// 000 111 -
        
        '\'',  		// 100 000
        '-',  		// 100 001
        '9',  		// 100 010 -
        '0',  		// 100 011
        '/',  		// 100 100 -
        '+',  		// 100 101 -
        '>',  		// 100 110 -
        '#',  		// 100 111 (Number)
        
        '1',  		// 010 000
        '5',  		// 010 001 -
        '3',  		// 010 010
        '4',  		// 010 011
        'i',  		// 010 100
        '{',  		// 010 101 -
        'j',  		// 010 110
        'w',  		// 010 111
        
        '2',  		// 110 000
        '8',  		// 110 001
        '6',  		// 110 010
        '7',  		// 110 011
        's',  		// 110 100
        '!',  		// 110 101 -
        't',  		// 110 110
        ')',  		// 110 111 -                        

        'a',  		// 001 000
        '*',  		// 001 001 -
        'e',  		// 001 010
        ':',  		// 001 011 -
        'c',  		// 001 100
        '%',  		// 001 101 -
        'd',  		// 001 110
        '?',  		// 001 111 -
        
        'k',  		// 101 000
        'u',  		// 101 001
        'o',  		// 101 010
        'z',  		// 101 011
        'm',  		// 101 100
        'x',  		// 101 101
        'n',  		// 101 110
        'y',  		// 101 111
        
        'b',  		// 011 000
        '<',  		// 011 001 -
        'h',  		// 011 010
        '|',  		// 011 011 -
        'f',  		// 011 100
        '$',  		// 011 101 -
        'g',  		// 011 110
        '}',  		// 011 111 -
        
        'l',  		// 111 000
        'v',  		// 111 001
        'r',  		// 111 010
        '(',  		// 111 011 -
        'p',  		// 111 100
        '&',  		// 111 101 -
        'q',  		// 111 110
        '='  		// 111 111 -
	};
	
	public static Character getChar(Boolean[] keys) {
		
		int result = 0;
		
	    for (int i=0; i<6; i++) {
	        result *= 2;
	        if (keys[i])
	            result += 1;
	    }
		
		return characters[result];
	}
	
}
